package com.changgou.goods.dao;

import com.changgou.goods.pojo.Sku;
import com.changgou.order.pojo.OrderItem;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import tk.mybatis.mapper.common.Mapper;

public interface SkuMapper extends Mapper<Sku> {

    //orderItem
    //自定义一个通用mapper的方法

    /***
     * 递减库存
     * @param orderItem
     * num 是tb_sku表里的num
     * #{num} 是OrderItem里的num  修改库存
     *
     * sale_num 是销量
     * @return
     */
    @Update("UPDATE tb_sku SET num=num-#{num},sale_num=sale_num+#{num} WHERE id=#{skuId} AND num>=#{num}")
    int decrCount(OrderItem orderItem);

    /***
     *回滚库存
     * @param skuId
     * @param num
     */
    @Update("update tb_sku set num = num + #{num},sale_num = sale_num - #{num} WHERE id=#{skuId}")
    void resumeStockNum(@Param("skuId") String skuId, @Param("num") Integer num);
}
